Selecting a server during development with ASP.NET Core

ASP.NET Core के अंतर्गत डेवलेपमेंट के समय सर्वर का चयन

ASP.NET Core डेवलपमेंट में कौन सा सर्वर चुनें? दोस्तों! 🙏 आइए, इस प्रश्न का उत्तर समझते हैं।

ASP.NET Core डेवलपमेंट के समय कौन सा सर्वर उपयोग करना चाहिए, यह कई कारकों पर निर्भर करता है, जैसे कि:

  • आपका ऑपरेटिंग सिस्टम (Windows, Linux, Mac)
  • डेवलपमेंट एनवायरनमेंट (Visual Studio, VS Code, CLI, Docker)
  • फाइनल डिप्लॉयमेंट कहां होगा (IIS, Linux, क्लाउड, कंटेनर)

Kestrel (डिफ़ॉल्ट और क्रॉस-प्लेटफॉर्म सर्वर)

👉 कब उपयोग करें?

  • ✔ जब आपको Windows, Linux, और Mac पर एक ही सर्वर का उपयोग करना हो।
  • ✔ जब आप Docker में काम कर रहे हों।
  • ✔ जब आप प्रोडक्शन में Nginx/IIS के साथ रिवर्स प्रॉक्सी का उपयोग करने की योजना बना रहे हों।

👉 कब न करें?

  • ❌ जब आपको IIS Express के इन-बिल्ट फीचर्स चाहिए हों।
  • ❌ जब आपको Windows Authentication चाहिए हो।

👉 कैसे सेट करें?

{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://localhost:5000"
      }
    }
  }
}

📌 CLI से चलाने के लिए:

dotnet run

IIS Express (केवल Windows)

👉 कब उपयोग करें?

  • ✔ जब आप Windows पर Visual Studio का उपयोग कर रहे हों।
  • ✔ जब आपको Windows Authentication की जरूरत हो।
  • ✔ जब आप IIS प्रोडक्शन पर डिप्लॉय करने की योजना बना रहे हों।

👉 कब न करें?

  • ❌ जब आप Linux या Mac पर काम कर रहे हों।
  • ❌ जब आप Docker में डेवेलपमेंट कर रहे हों।

👉 कैसे सेट करें?

{
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

IIS (Windows Server पर होस्टिंग के लिए)

👉 कब उपयोग करें?

  • ✔ जब आप Windows Server पर डिप्लॉय करने की योजना बना रहे हों।
  • ✔ जब आपको Reverse Proxy की जरूरत हो।
  • ✔ जब आपको Windows Authentication चाहिए हो।

👉 कब न करें?

  • ❌ जब आप Linux या Mac पर काम कर रहे हों।
  • ❌ जब आप Docker या क्लाउड-बेस्ड डेवेलपमेंट कर रहे हों।

👉 कैसे सेट करें?

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseIIS();
var app = builder.Build();
app.Run();

Nginx/Apache (Linux/Mac पर डेवलपमेंट या प्रोडक्शन)

👉 कब उपयोग करें?

  • ✔ जब आप Linux/Mac पर काम कर रहे हों।
  • ✔ जब आप प्रोडक्शन में Linux सर्वर पर डिप्लॉय कर रहे हों।
  • ✔ जब आपको रिवर्स प्रॉक्सी की जरूरत हो।

👉 कब न करें?

  • ❌ जब आप Windows-only फीचर्स (Windows Auth, IIS-specific tools) उपयोग कर रहे हों।
  • ❌ जब आपको Visual Studio के अंदर Debugging चाहिए हो।

👉 कैसे सेट करें?


Kestrel रन करें:
dotnet MyApp.dll

Nginx कॉन्फ़िगर करें (/etc/nginx/sites-available/default)
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}

Nginx रीस्टार्ट करें:
sudo systemctl restart nginx

Docker + Nginx (क्लाउड-बेस्ड डेवलपमेंट)

👉 कब उपयोग करें?

  • ✔ जब आप Docker कंटेनर में काम कर रहे हों।
  • ✔ जब आपको क्लाउड-नेटिव एप्लिकेशन बनानी हैं।
  • ✔ जब आपको Microservices डेवलपमेंट करना हो।

👉 कब न करें?

  • ❌ जब आप सिर्फ Windows/IIS आधारित एप्लिकेशन बना रहे हों।
  • ❌ जब आप Visual Studio Debugging चाहते हों।

👉 कैसे सेट करें?


FROM mcr.microsoft.com/dotnet/aspnet:8.0
COPY . /app
WORKDIR /app
EXPOSE 80
CMD ["dotnet", "MyApp.dll"]

📌 Docker Compose से Nginx और ASP.NET Core रन करें:


version: '3.4'
services:
web:
build: .
ports:
- "5000:80"
nginx:
image: nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- "80:80"

📌 Docker रन करें:

docker-compose up -d

निष्कर्ष: कब कौन सा सर्वर चुनें?

सर्वर कब उपयोग करें? कब न करें?
Kestrel (डिफ़ॉल्ट) क्रॉस-प्लेटफॉर्म, CLI, Docker Windows Authentication चाहिए
IIS Express Windows पर Visual Studio Debugging Linux/Mac पर
IIS Windows Server पर डिप्लॉय Linux/Mac पर
Nginx/Apache Linux/Mac पर या Reverse Proxy चाहिए Windows-only Apps
Docker + Nginx क्लाउड और Microservices IIS Specific Features चाहिए

💥मुख्य बातें

  • Windows में Visual Studio का उपयोग करते समय IIS Express सुविधाजनक होता है।
  • Linux/Mac या कंटेनर में Kestrel + Nginx बेहतर होता है।
  • प्रोडक्शन में IIS (Windows) या Nginx (Linux) के साथ Kestrel सुरक्षित रहता है।


Next: ASP.NET Core के अंतर्गत क्लास के अलावा क्या इंटरफेस भी सर्विसेज के रूप में प्रयोग किया जा सकता है?

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks